package cn.tedu.hotel.mapper;

import cn.tedu.hotel.pojo.entity.Category;
import cn.tedu.hotel.pojo.vo.CategoryListItemVO;
import cn.tedu.hotel.pojo.vo.CategoryStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 *  房间类型mapper接口
 */
@Repository
public interface CategoryMapper {

    /**
     * 插入房型数据
     * @param category 房型数据
     * @return 受影响行数
     */
    int insert(Category category);

    /**
     * 根据id删除房间类型
     *
     * @param id 被删除的类型的id
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据id修改房间类型数据详情
     *
     * @param category 封装了id与新数据的房间类型对象
     * @return 受影响的行数
     */
    int update(Category category);

    /**
     *   根据名称获取表中 同名的数据数量
     * @param name 房间类型名称
     * @return  返回数量
     */
    int countByName(String name);



    /**
     * 根据id获取房间类型的标准信息
     *
     * @param id 房间类型id
     * @return 返回匹配的房间类型的标准信息，如果没有匹配的数据，将返回null
     */
    CategoryStandardVO getStandardById(Long id);

    /**
     *  根据房间id获取房间类型信息
     * @param roomId
     * @return
     */
    CategoryStandardVO getCategoryByRoomId(Long roomId);

    /**
     *  获取房间类型列表
     * @return
     */
    List<CategoryListItemVO> listType();



}
